The main code is located in the 'code' folder, while the datasets used are listed in the 'dataset' folder.

-The 'exp1' folder contains the code for the 'size-error tradeoff for robust geometric median' experiment, with the results shown in Figure 2 and Figure 4 of our paper. Let $m=n/2$ for each dataset, we perform Figure 5.

-The 'exp2' folder contains code for the experiment on how our algorithm speeds up the approximation algorithm for robust geometric median with the results presented in Table 2 of our paper. This code supports both robust k-median (by adjusting 'num_of_centers' parameter) and robust k-means (by setting the parameter z=2 in the main.cpp). The results presented in Table 6 and Table 8.

-The 'exp3' folder contains code for the 'size-error tradeoff for robust 1D 1-median' experiment, with the results shown in Figure 7 of our paper.

-The 'exp4' folder contains code for the 'size-error tradeoff for robust k-median' experiment,  with the results shown in Figure 8 of our paper. 

-The 'exp5' folder contains code for the 'size-error tradeoff for robust k-means' experiment,  with the results shown in Figure 10 of our paper. By resetting the parameters of the Bank and Adult datasets, we generate the results shown in Figure 11.

-The 'exp6' folder contains code generating perturbed datasets, where 10% of the points are randomly modified. The experimental results on these perturbed datasets are shown in Figures 6, 9, and 12. 

-The 'statistical test' folder contains code for statistical tests on robust geometric median, robust k-median, robust k-means, with the results shown in Table 1, 5 and 7.

All experiments are conducted on a PC with Intel Core i9 CPU and 16GB memory, and the algorithms are implemented by C++ 11.

To use prep.cpp in the folders 'exp1', you should provide the following parameters via the command line:
data_name: The path to the dataset for the experiment.
data_size: The size of the dataset.
data_dim: The number of dimensions in the dataset.
num_of_centers: The number of centers for the clustering problem being explored.
num_of_outliers: The number of outliers in the dataset.


To use main.cpp in experiment folder 'exp1'-'exp5', you should provide the following parameters via the command line:
data_name: The path to the dataset for the experiment.
data_size: The size of the dataset.
data_dim: The number of dimensions in the dataset.
num_of_centers: The number of centers for the clustering problem being explored.
num_of_outliers: The number of outliers in the dataset.
threshold: This parameter determines how the rings and groups are formed. We use the following values:
		160 for the Adult and Bank datasets
		320 for the Twitter and Census1990 datasets.
		32 for the Athlete and Diabetes datasets.


To use generate.cpp in the folders 'exp6', you should provide the following parameters via the command line:
data_name: The path to the dataset for the experiment.
data_size: The size of the dataset.
data_dim: The number of dimensions in the dataset.


To use main.cpp in experiment folder 'statistical test', you should provide the following parameters via the command line:
data_name: The path to the dataset for the experiment.
data_size: The size of the dataset.
data_dim: The number of dimensions in the dataset.
num_of_centers: The number of centers for the clustering problem being explored.
num_of_outliers: The number of outliers in the dataset.
threshold: This parameter determines how the rings and groups are formed. We use the following values:
		160 for the Adult and Bank datasets
		320 for the Twitter and Census1990 datasets.
		32 for the Athlete and Diabetes datasets.
mm: the fixed coreset size used in the evaluation.
k: number of centers
z: z=1 for robust geometric median or robust k-median; z=2 for robust k-means
